package org.convallaria.system.biz.service.auth;

import org.convallaria.system.biz.entity.dto.CaptchaDTO;
import org.convallaria.system.biz.service.auth.impl.CaptchaServiceImpl;

/**
 * 验证码服务接口
 * 
 * @author convallaria
 * @since 1.0.0
 */
public interface CaptchaService {

    /**
     * 生成验证码
     * 
     * @return 验证码信息
     */
    CaptchaDTO generateCaptcha();

    /**
     * 验证验证码
     * 
     * @param captchaKey 验证码key
     * @param captchaCode 验证码
     * @return 是否验证成功
     */
    boolean validateCaptcha(String captchaKey, String captchaCode);

    /**
     * 检查验证码是否存在（不删除）
     * 
     * @param captchaKey 验证码key
     * @return 是否存在
     */
    boolean existsCaptcha(String captchaKey);

    /**
     * 获取验证码剩余过期时间
     * 
     * @param captchaKey 验证码key
     * @return 剩余时间（秒）
     */
    long getCaptchaExpireTime(String captchaKey);

    /**
     * 刷新验证码过期时间
     * 
     * @param captchaKey 验证码key
     * @return 是否刷新成功
     */
    boolean refreshCaptchaExpire(String captchaKey);

    /**
     * 清理过期的验证码
     * 
     * @return 清理的数量
     */
    long cleanExpiredCaptchas();
}
